package com.cskaoyan._19collection._06collection._01collectiondemo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * @author Macro_Ray
 * @since 2024/4/1 16:41
 */

/*
    迭代器的细节注意点：
        1.报错NoSuchElementException
        2.迭代器遍历完毕，指针不会复位   ----> 如果还想使用需要重新获取迭代器对象
        3.循环中只能用一次next方法
        4.迭代器遍历时，不能用集合的方法进行增加或者删除
* */
public class CollTraverse_Iterator2 {
    public static void main(String[] args) {
        // 1.创建集合并添加元素
        Collection<String> coll = new ArrayList<>();
        coll.add("AAA");
        coll.add("BBB");
        coll.add("CCC");
        coll.add("DDD");

        // 2.获取迭代器对象
        // 迭代器就是一个箭头，默认指向集合的0索引
        Iterator<String> it = coll.iterator();
        // 3.遍历集合
        while (it.hasNext()) {
            // next方法做了两件事：获取元素、移动指针
            String str = it.next();
            System.out.println(str);
            // hasNext()方法要和next()方法配合使用，一一对应，否则会报错NoSuchElementException
        }
    }
}
